package cn.mandifal.pay.service;

import java.io.UnsupportedEncodingException;
import java.util.Map;

/**
 * 支付宝支付服务接口
 * @author shun
 */
public interface ZhiFuBaoPayService {
    /**
     * 支付
     * @param out_trade_no 商家订单号
     * @param total_amount 支付金额
     * @return 返回支付后的同步调用结果
     * @throws Exception
     */
    public String pay(String out_trade_no,String total_amount) throws Exception;

    /**
     * 验证签名
     * @param requestParams 支付宝返回的参数
     * @return 返回 true 或 false
     * @throws Exception
     */
    public Boolean checkSign( Map<String,String[]> requestParams) throws Exception;

    /**
     * 查询支付状态
     * @param out_trade_no 支付订单号
     * @param trade_no 支付宝流水订单号
     * @return
     */
    public String queryPay(String out_trade_no,String trade_no) throws Exception;

    /**
     * 根据支付支付宝流水号，退款（可部分退款）
     * @return
     */
    public Boolean refund(Map map) throws Exception;
}
